Two ... no three! things a C*AN needs

Eric Wilhelm on 2007-07-21T10:30:00

So, you want to make yourself a Comprehensive Foo Archive Network...

1. Self-upgrading client.

2. configure_requires (compile-time dependency declaration)

3. Cross-compile-able (no $^O conditionals in the runtime.)

I'm sure there's more, but 1 & 2 really sort of cover everything (well, enable you to fix it if you're wrong.) The #3 is really just about "wow that hurts" if it has been hard-coded into the assumptions for far too long.


I'd phrase that differently

Alias on 2007-07-21T14:00:01

1. Self-upgrading client

2. Turing-complete configuration/dependency determination

2a. Non-turing-complete dependencies for the turing-complete configuration

3. Integrated package testing

These are the three things you REALLY need to deal with multiple platforms, and varying situations.

I'd class the cross-compilation is troublesome, mostly because as I understand it you can't easily (or at all) run the tests.